package hxy.bytecode.thread.multi;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;

/**
 * @author eric
 * @program bytecode
 * @description \
 * @date 2021/5/15
 */
public class AddRunnable3 implements Runnable {
    List<Integer> list;
    CountDownLatch countDownLatch;

    AddRunnable3(List list) {
        this.list = list;
    }

    AddRunnable3(List list, CountDownLatch countDownLatch) {
        this.list = list;
        this.countDownLatch = countDownLatch;
    }

    @Override
    public void run() {
        for (int i = 0; i < 100000; i++) {
            list.add(i);
        }
        System.out.println(list.size());
        countDownLatch.countDown();
    }

    public static void main(String[] args) {
        ArrayList<Integer> objects = new ArrayList<>();
        final CountDownLatch countDownLatch = new CountDownLatch(2);

        new Thread(new AddRunnable3(objects,countDownLatch), "线程1").start();
        new Thread(new AddRunnable3(objects,countDownLatch), "线程2").start();

        try {
            countDownLatch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(objects.size());

    }
}
